home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-13 / mg2a_src.zip / KBD.H < prev    next >
C/C++ Source or Header  |  1988-08-23  |  2KB  |  64 lines

  1. /*
  2.  * kbd.h: type definitions for symbol.c and kbd.c for mg experimental
  3.  */
  4.  
  5. typedef struct    {
  6.     KCHAR    k_base;        /* first key in element            */
  7.     KCHAR    k_num;        /* last key in element            */
  8.     PF    *k_funcp;    /* pointer to array of pointers to functions */
  9.     struct    keymap_s    *k_prefmap;    /* keymap of ONLY prefix key in element */
  10. }    MAP_ELEMENT;
  11.  
  12. /* predefined keymaps are NOT type KEYMAP because final array needs
  13.  * dimension.  If any changes are made to this struct, they must be
  14.  * reflected in all keymap declarations.
  15.  */
  16.  
  17. #define KEYMAPE(NUM)    {\
  18.     short    map_num;\
  19.     short    map_max;\
  20.     PF    map_default;\
  21.     MAP_ELEMENT map_element[NUM];\
  22. }
  23.         /* elements used        */
  24.         /* elements allocated        */
  25.         /* default function        */
  26.         /* realy [e_max]        */
  27. typedef struct    keymap_s KEYMAPE(1)    KEYMAP;
  28.  
  29. #define none    ctrlg
  30. #define prefix    (PF)NULL
  31.  
  32. /* number of map_elements to grow an overflowed keymap by */
  33. #define IMAPEXT 0
  34. #define MAPGROW 3
  35. #define MAPINIT (MAPGROW+1)
  36.  
  37. /* max number of default bindings added to avoid creating new element */
  38. #define MAPELEDEF 4
  39.  
  40. typedef struct MAPS_S {
  41.     KEYMAP    *p_map;
  42.     char    *p_name;
  43. }    MAPS;
  44.  
  45. extern    MAPS    map_table[];
  46.  
  47. typedef struct {
  48.     PF    n_funct;
  49.     char    *n_name;
  50. }    FUNCTNAMES;
  51.  
  52. extern    FUNCTNAMES    functnames[];
  53. extern    int    nfunct;
  54.  
  55. extern    PF    doscan();
  56. extern    PF    name_function();
  57. extern    char    *function_name();
  58. extern    int    complete_function();
  59. extern    KEYMAP    *name_map();
  60. extern    char    *map_name();
  61. extern    MAPS    *name_mode();
  62.  
  63. extern    MAP_ELEMENT *ele;
  64.